#include "sort.hpp"

void SelectSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::SelectSort(array);
  Sort::Print(array);
}

void InsertSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::InsertSort(array);
  Sort::Print(array);
}

void BubbleSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::BubbleSort(array);
  Sort::Print(array);
}

void HeapSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::HeapSort(array);
  Sort::Print(array);
}

void ShellSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::ShellSort(array);
  Sort::Print(array);
}

void RQuickSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::RQuickSort(array);
  Sort::Print(array);
}

void NoRQuickSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::NoRQuickSort(array);
  Sort::Print(array);
}

void RMergeSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::RMergeSort(array);
  Sort::Print(array);
}

void NoRMergeSort()
{
  std::vector<int> array;
  for(int i = 0; i < 100; i++){
    array.push_back(rand() % 100 + 1);
  }

  Sort::NoRMergeSort(array);
  Sort::Print(array);
}

int main()
{
  srand((unsigned long)time(nullptr));
  //SelectSort();
  //InsertSort();
  //BubbleSort();
  //HeapSort();
  //ShellSort();
  RQuickSort();
  //NoRQuickSort();
  //RMergeSort();
  //NoRMergeSort();
  return 0;
}
